#!/bin/bash

set -e

# set the postgres database host, port, user and password according to the environment
# and pass them as arguments to the flectra process if not present in the config file
: ${HOST:=${DB_PORT_5432_TCP_ADDR:='db'}}
: ${PORT:=${DB_PORT_5432_TCP_PORT:=5432}}
: ${USER:=${DB_ENV_POSTGRES_USER:=${POSTGRES_USER:='flectra'}}}
: ${PASSWORD:=${DB_ENV_POSTGRES_PASSWORD:=${POSTGRES_PASSWORD:='flectra'}}}
DB_ARGS=("--workers=0" "--dev=all")

ADDONS=("/opt/flectra/flectra/addons" "/opt/flectra/addons" "/mnt/repos")

# Install requirements.txt and oca_dependencies.txt from root of mount
if [[ "${SKIP_DEPENDS}" != "1" ]] ; then
    export VERSION=$ODOO_VERSION
    clone_module_dependencies /mnt/repos /tmp

    # Iterate the newly cloned addons & add into possible dirs
    for dir in /mnt/repos/*/ ; do
        ADDONS+=("$dir")
    done

    VALID_ADDONS="$(getaddons.py ${ADDONS[*]})"
    DB_ARGS+=("--addons-path=${VALID_ADDONS}")
fi

function check_config() {
    param="$1"
    value="$2"
    if ! grep -q -E "^\s*\b${param}\b\s*=" "$FLECTRA_RC" ; then
        DB_ARGS+=("--${param}")
        DB_ARGS+=("${value}")
   fi;
}
check_config "db_host" "$HOST"
check_config "db_port" "$PORT"
check_config "db_user" "$USER"
check_config "db_password" "$PASSWORD"

echo "${DB_ARGS[@]}"
case "$1" in
    -- | flectra)
        shift
        if [[ "$1" == "scaffold" ]] ; then
            exec /opt/flectra/flectra-bin "$@"
        else
            exec /opt/flectra/flectra-bin "$@" "${DB_ARGS[@]}"
        fi
        ;;
    -*)
        exec /opt/flectra/flectra-bin "$@" "${DB_ARGS[@]}"
        ;;
    *)
        exec "$@"
esac

exit 1
